SetSpecificProperties Subroutine

private subroutine SetSpecificProperties(method, ini, mask)

set properties and initialize variables for each interpolation method

Arguments

Type IntentOptional Attributes Name
integer(kind=short), intent(in) :: method
type(IniList), intent(in) :: ini
type(grid_integer), intent(in) :: mask

Source Code

SUBROUTINE SetSpecificProperties &
!
( method, ini, mask )

IMPLICIT NONE

!Arguments with intent(in):
INTEGER (KIND = short), INTENT(in) :: method
TYPE (IniList)        , INTENT(in) :: ini
TYPE (grid_integer)   , INTENT(in) :: mask

!----------------------------end of declarations-------------------------------

!set data specific for each interpolation method
SELECT CASE (method)
    CASE (1) !thiessen
      CALL NewGrid (interpolatedMap (1), mask, 0.)
    CASE (2) !inverse distance
      CALL NewGrid (interpolatedMap (2), mask, 0.)
	    !nearest-points
      IF (KeyIsPresent ('nearest-points', ini, &
                         section = 'wind-speed') ) THEN
	       neighbors = IniReadInt ('nearest-points', ini, &
                                   section = 'wind-speed')
      ELSE !nearest-points missing
          CALL Catch ('error', 'WindFlux',   &
		                 'nearest-points missing in meteo configuration file')
      END IF
 
    CASE (3) !kriging
      CALL NewGrid (interpolatedMap (3), mask, 0.)
      !nearest-points
      IF (KeyIsPresent ('nearest-points', ini, &
                         section = 'wind-speed') ) THEN
	       neighbors = IniReadInt ('nearest-points', ini, &
                                   section = 'wind-speed')
           CALL Catch ('info', 'WindFlux', 'neighbors set to: ', argument = ToString (neighbors) )
      ELSE !nearest-points missing
          CALL Catch ('error', 'WindFlux',   &
		                 'nearest-points missing in meteo configuration file')
      END IF
      
      !kriging-variance
      IF (KeyIsPresent ('kriging-variance', ini, &
                         section = 'wind-speed') ) THEN
	       krige_var = IniReadInt ('kriging-variance', ini, &
                                   section = 'wind-speed')
           
           CALL Catch ('info', 'WindFlux',   &
		                 'kriging variance export set to ', argument = ToString(krige_var) )
      ELSE !kriging-variance missing
           krige_var = 0                                     
           CALL Catch ('info', 'WindFlux',   &
		                 'kriging variance export set to default (0)')
      END IF
      
      !kriging-anisotropy
      IF (KeyIsPresent ('kriging-anisotropy', ini, &
                         section = 'wind-speed') ) THEN
	       krige_anisotropy = IniReadInt ('kriging-anisotropy', ini, &
                                   section = 'wind-speed')
           CALL Catch ('info', 'WindFlux', 'kriging anisotropy set to: ', argument = ToString (krige_anisotropy) )
      ELSE !kriging-anisotropy missing
           krige_anisotropy = 0                                     
           CALL Catch ('info', 'WindFlux',   &
		                 'kriging anisotropy set to default (0)')
      END IF
      
      !kriging-variogram-model
      IF (KeyIsPresent ('kriging-variogram-model', ini, &
                         section = 'wind-speed') ) THEN
	       krige_varmodel = IniReadInt ('kriging-variogram-model', ini, &
                                   section = 'wind-speed')
           CALL Catch ('info', 'WindFlux', 'kriging variogram model set to: ', argument = ToString (krige_varmodel) )
           IF (krige_varmodel == 0 ) krige_varmodel = 5 !automatic fitting
      ELSE !kriging-variogram-model
           krige_varmodel = 2                                     
           CALL Catch ('info', 'WindFlux',   &
		                 'kriging variogram model set to default (2 exponential)')
      END IF
      
      !kriging-lags
      IF (KeyIsPresent ('kriging-lags', ini, &
                         section = 'wind-speed') ) THEN
	       krige_lags = IniReadInt ('kriging-lags', ini, &
                                   section = 'wind-speed')
           IF (krige_lags == 0) krige_lags = 15
           CALL Catch ('info', 'WindFlux', 'kriging lags set to: ', argument = ToString (krige_lags) )
      ELSE !kriging-variogram-model
           krige_lags = 15                                     
           CALL Catch ('info', 'WindFlux',   &
		                 'kriging lags set to default (15)')
      END IF
      
       !kriging-maxlag
      IF (KeyIsPresent ('kriging-maxlag', ini, &
                         section = 'wind-speed') ) THEN
	       krige_maxlag = IniReadInt ('kriging-maxlag', ini, &
                                   section = 'wind-speed')
           CALL Catch ('info', 'WindFlux', 'kriging max lag set to: ', argument = ToString (krige_maxlag) )
      ELSE !kriging-maxlag missing
           krige_maxlag = 0
          CALL Catch ('error', 'WindFlux',   &
		                 'kriging max lag set to default (0)')
      END IF
      
      
    CASE (4) !micromet
      CALL NewGrid (interpolatedMap (4), mask, 0.)
      
    CASE (5) !gonzalez
      CALL NewGrid (interpolatedMap (5), mask, 0.)
	
END SELECT


RETURN
END SUBROUTINE SetSpecificProperties